//
//  Analytics.h
//  MemoryMaster
//
//  Created by liyu on 2017/11/4.
//
//

#import <Foundation/Foundation.h>
//自己的统计
#import <MMBaseComponents/AIOAnalytics.h>
//友盟的统计
#import <UMCommon/UMCommon.h>
#import <UMAnalytics/MobClick.h>
@interface Analytics : NSObject
/**
 初始化（不需要推送消息）
 @param appKey 平台申请的app key
 @param channelId 自定义用于分渠道统计的标识，如appstore 企业分发. 规则：英文字母、阿拉伯数字、下划线、中划线、空格、括号组成;首尾字符不可以为空格;最多256个字符
 */
+ (void) start:(NSString *)appKey channel:(NSString *)channelId;

/**
 初始化（需要推送消息时）
 @param appKey 同start;channel
 @param channelId 同start;channel
 @param types 保留
 @param delegate 用于notification的delegate
 */
+ (void) start:(NSString *)appKey channel:(NSString *)channelId withPushNotificationConfig:(NSDictionary *)types delegate:(id)delegate;

/**页面统计******************************************
 @pageId 自定义页面标识，规则：由数字、字母、下划线组成，且长度不能超过128个字节
 注意：页面开始事件和结束事件必须成对出现，并且开始和结束用的pageId确保一致
 ***************************************/
/**页面开始事件
 @param pageId 自定义页面标识
 */
+ (void) beginPage:(NSString *)pageId;
/**页面结束事件，必须与beginPage成对出现
 @param pageId 自定义页面标识
 */
+ (void) endPage:(NSString *)pageId;

/**事件统计******************************************
 @eventId 从平台创建并获取的event id，否则不进行统计
 @attribute 自定义参数名，规则：数字、字母、下划线组成，不能超过128个字节
 ****************************************/
/**事件统计，只作事件计数
 @param eventId 事件ID
 */
+ (void) event:(NSString *)eventId;
/**事件统计，计算事件
 @param eventId 事件ID
 @param number 事件的值
 */
+ (void) event:(NSString *)eventId value:(int)number;
/**事件统计，区分参数的统计
 @param eventId 事件ID
 @param attribute 参数名
 */
+ (void) event:(NSString *)eventId attribute:(NSString *)attribute;
/**事件统计，区分参数并且计算的统计
 @param eventId 事件ID
 @param attribute 参数名
 @param number 事件参数值
 */
+ (void) event:(NSString *)eventId attribute:(NSString *)attribute value:(int)number;
/**事件统计，区分参数和值的统计
 @param eventId 事件ID
 @param attributes 参数值对
 */
+ (void) event:(NSString *)eventId attributes:(NSDictionary *)attributes;
/**事件统计，区分参数和值的统计，并且可计算
 @param eventId 事件ID
 @param attributes 参数值对
 @param number 值
 */
+ (void) event:(NSString *)eventId attributes:(NSDictionary *)attributes value:(int)number;
@end

